/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import java.util.ArrayList;
import model.dao.DisciplinaDao;
import model.pojo.Disciplina;

/**
 *
 * @author leonidia
 */
public class DisciplinaView {

    private DisciplinaDao disciplinaDao;

    public DisciplinaView(DisciplinaDao disciplinaDao) {
        this.disciplinaDao = disciplinaDao;
    }

    public ArrayList<Disciplina> addDisciplina() {
        Disciplina disciplina;
        disciplina = new Disciplina();
        System.out.println("Adicionar Disciplina");
        System.out.println("digite o nome da disciplina");
        disciplina.setNome(Console.readString());

        System.out.println("digite a ementa da disciplina");
        disciplina.setEmenta(Console.readString());

        System.out.println("digite a carga horaria da disciplina");
        disciplina.setCargaHoraria(Console.readInteger());

        disciplina.setId(disciplinaDao.novoId());
        if (disciplinaDao.addDisciplina(disciplina) == false) {
            System.out.println("Disciplina ja cadastrada");
        }
        return disciplinaDao.getListaDisciplina();
    }

    public int ListarDisciplina() {
        ArrayList<Disciplina> lista;
        lista = disciplinaDao.getListaDisciplina();
        if (lista.isEmpty()) {
            System.out.println("Não há disciplinas cadastradas:\n");
            return 0;
        }
        System.out.println("Listagem de disciplina:\n");
        int i;
        for (i = 0; i < lista.size(); i++) {
            System.out.println("Id: " + lista.get(i).getId());
            System.out.println("Nome: " + lista.get(i).getNome());
            System.out.println("ementa: " + lista.get(i).getEmenta());
            System.out.println("carga Horaria: " + lista.get(i).getCargaHoraria());
            System.out.println("----------------------------\n");
        }
        return 1;
    }

    public boolean ListarDisciplinaPorProfessor(Integer idProfessor) {
        ArrayList<Disciplina> lista = disciplinaDao.getListaDisciplina();
        if (lista.isEmpty()) {
            System.out.println("Não há disciplinas cadastradas:\n");
            return false;
        }
        System.out.println("Listagem de disciplina:\n");
        int i;
        for (i = 0; i < lista.size(); i++) {
            /*Confere se professor esta vinculado a disciplina*/
//            if (idProfessor == disciplinaDao.getIdProfessor(i)) {
            System.out.println("Id: " + lista.get(i).getId());
            System.out.println("Nome: " + lista.get(i).getNome());
            System.out.println("ementa: " + lista.get(i).getEmenta());
            System.out.println("carga Horaria: " + lista.get(i).getCargaHoraria());
            System.out.println("----------------------------\n");
        }
        return true;
    }

    public void imprimirDisciplinaPorId(Integer idDisciplina) {
        Integer i;
        ArrayList<Disciplina> lista = this.disciplinaDao.getListaDisciplina();
        for (i = 0; i < lista.size(); i++) {
            if (lista.get(i).getId() == idDisciplina) {
                System.out.println("Id: " + lista.get(i).getId());
                System.out.println("Nome: " + lista.get(i).getNome());
                System.out.println("ementa: " + lista.get(i).getEmenta());
                System.out.println("carga Horaria: " + lista.get(i).getCargaHoraria());
                System.out.println("----------------------------\n");
                return;
            }
        }
    }

    public boolean ListarDisciplinaPorListaIdProfessor(ArrayList<Integer> listaIdDisciplina) {
        Integer i, j;
        ArrayList<Disciplina> disciplinas = this.disciplinaDao.getListaDisciplina();

        if (listaIdDisciplina.isEmpty()) {
            System.out.println("não há Disciplina ");
            return false;
        }
        for (j = 0; j < listaIdDisciplina.size(); j++) {
            for (i = 0; i < disciplinas.size(); i++) {
                if (disciplinas.get(i).getId() == listaIdDisciplina.get(j)) {
                    System.out.println("Id: " + disciplinas.get(i).getId());
                    System.out.println("Nome: " + disciplinas.get(i).getNome());
                    System.out.println("ementa: " + disciplinas.get(i).getEmenta());
                    System.out.println("carga Horaria: " + disciplinas.get(i).getCargaHoraria());
                    System.out.println("----------------------------\n");
                }
            }
        }
        return true;
    }
}